主题
数据库模块总览 - Overview
本分类做什么
提供 SQLite 风格 的 连接、执行 SQL、遍历结果集、按类型读列 等 API。字库、图像资源、配置项等可统一落库;多接口支持 db 传 0 表示默认库(需已打开,见各页)。与 Config相关、图像数据库 配合使用。
一、连接生命周期
| 接口 | 差异 |
|---|---|
| CreateDatabase | 创建 库文件(若策略为「不存在则建」类,见详情页)。 |
| OpenDatabase | 打开已有文件;不存在 时行为与 CreateDatabase 成对阅读。 |
| OpenMemoryDatabase | 内存库,进程结束即失(适合缓存/会话)。 |
| CloseDatabase | 关闭连接、释放句柄。 |
| GetDatabaseError | 取最后一次错误信息。 |
选型:持久配置与字库 → 文件库;临时高速 → 内存库。
二、执行方式:三种「执行」接口
| 接口 | 返回 | 典型 SQL |
|---|---|---|
| ExecuteSql | 无结果集或影响行数(见详情页) | DDL、INSERT、UPDATE、DELETE |
| ExecuteScalar | 单个标量 | SELECT COUNT(*)、SELECT MAX(id) |
| ExecuteReader | 结果集游标,需 Read 循环 | 多行 SELECT |
差异:需要 遍历多行多列 → ExecuteReader;只要 一个值 → ExecuteScalar;不要结果 → ExecuteSql。
三、结果集遍历:Read 与列访问
| 步骤 | 接口 |
|---|---|
| 移动行 | Read |
| 行数/列数 | GetDataCount、GetColumnCount |
| 列名/类型/索引 | GetColumnName、GetColumnType、GetColumnIndex |
| 按列索引读 | GetDouble、GetInt32、GetInt64、GetString |
| 按列名读 | GetDoubleByColumnName 等 |
| 结束 | Finalize |
与 ORM 区别:此处为 底层 sqlite3 风格,需自行处理 SQL 注入(参数绑定若插件支持见版本说明)。
四、元数据
| 接口 | 用途 |
|---|---|
GetAllTableNames | 枚举表。 |
GetTableInfo、GetTableInfoDetail | 表结构简版/详版。 |
五、与其它模块
| 模块 | 关系 |
|---|---|
| Config相关 | 在 配置库 存键值,不一定手写 SQL。 |
| 设置 | DbPath 等指定 默认库。 |
六、快速选型
| 需求 | 建议 |
|---|---|
| 存字库、配置、图元数据 | OpenDatabase + ExecuteSql / Reader |
| 只查一个计数 | ExecuteScalar |
| 临时会话 | OpenMemoryDatabase |
